Computer networks interconnect a plurality of computers (information processing devices) via many intervening communication devices such as switches. Each communication device forwards packets to an appropriate direction depending on their respective destinations. The forwarding paths of packets in a network can be controlled in a desired way by appropriately programming forwarding directions at each communication device.
Some computer networks have a more complex structure than loop networks. Specifically, one such network has the following features (1) to (5):                (1) Computers, referred to as nodes, communicate information in the form of packets. Each node is identified by an address.        (2) Packets contain address information specifying to which node they should be forwarded.        (3) Each switch has a forwarding database (FDB) describing output ports associated with address of each destination node of packets.        (4) Switches determine which output port to use to forward a received packet, by consulting their respective FDBs based on the packet's destination node address. The received packet is then directed to the determined output port.        (5) FDB of each switch is configured under the control of a network management apparatus.        
InfiniBand™ is one of such networks providing all the noted features. Ethernet® also provides the features of (1) to (4) and thus may fall in the category of the above network if it employs FDB-based switches under the control of a network management apparatus.
In the above-noted type of network, the forwarding paths of packets can be configured for each destination node. It is therefore possible to ensure the bandwidth and redundancy of the network by configuring FDB in each switch in an appropriate manner.
The setup of forwarding paths in a network may be changed in the following cases:                Failure: Forwarding routes are modified to detour around the failed node or link, so as to achieve fault-tolerant communication.        Maintenance: Some maintenance works necessitate partial disconnection of the network. Forwarding routes are modified to detour around the disconnected portion, so as not to disrupt communication during the maintenance.        Performance Tuning: Forwarding routes are optimized for a specific purpose, so as to enhance the network performance in the intended use.Upon occurrence of such a route-changing event, the network management apparatus executes a route changing process in the following way.        Step 1: The network management apparatus calculates new routes that achieve the purpose of fault-tolerance or performance enhancement, thus creating an updated FDB for each relevant switch.        Step 2: The network management apparatus distributes the created FDBs to switches, which permits each receiving switch to update its local FDB. The entire network is thus reconfigured with the new routes.        
The conventional method of FDB distribution, however, does not particularly care about in what order the switches should receive their FDBs. Hence it could lead to unintended production of a loop during the course of changing packet routes. The term “loop” or “switching loop” refers to a closed path of packets which begins and ends at the same point on the network.
Suppose, for example, that the network has originally been configured to forward packets from switch A to switch B when those packets are destined for node X. FDB in switch A is thus programmed to forward such node-X packets to switch B, and FDB in switch B is programmed to forward the same to another switch other than switch A. Suppose now that the network has to be reconfigured to forward packets for node X in the opposite direction, i.e., from switch B to switch A, because of some event that necessitates doing so. The conventional method may apply the change to switch B earlier than to switch A. This means that the FDB of switch A still maintains its original content just after the update of FDB at switch B. When a packet addressed to node X arrives, switch A forwards it to switch B as before. Switch B, on the other hand, forwards that packet back to switch A as specified by its new FDB. As a result, the packet addressed to node X is retransmitted back and forth between two switches A and B, where a loop is produced.
One method to avoid the problem of loops is to reset every switch's FDB and reprograms them from scratch. This method, however, disrupts communication during the reprogramming of FDBs. Particularly in the case of resetting switches for the purpose of recovery from failure, all switches in the network become unable to deliver packets to their destinations, even if the direct effect of the failure could be confined in a small portion of the network. From the viewpoint of stability of network operations, the above method is inappropriate since it expands the effect of failure.
It is also noted that the above problem applies not only to the networks of switches using FDB for management of forwarding destinations, but also to a wide range of networks which employ a network management apparatus to modify the forwarding data for each packet destination.